// source --> https://www.okiflex.com.br/wp-content/plugins/new-dgm-cart/front-end/js/dgm-cart.js?ver=1605012192 (function($){ // 'use strict'; var dgmCart = { modal : function( action ){ if ( action == 'close' ) { $('.product-list-cart').removeClass('open'); } else if ( action == 'open' ) { $('.product-list-cart').addClass('open'); } else { $('.product-list-cart').toggleClass('open'); } }, notify : function( messageNotify ){ var defaultNotify = { message: '', type: 'alert' } var settingsNotify = $.extend({}, defaultNotify, messageNotify ); new Noty({ layout: dgm_cart_js.notification, text: settingsNotify.message, type: settingsNotify.type, theme: 'sunset', timeout: 5000, }).show(); }, addProduct : function( element, quantity ){ var elementQtd = parseInt( quantity ) || 1; var elementData = {} for ( var attr_data in dgm_cart_js.attrs_data ) { elementData[ dgm_cart_js.attrs_data[attr_data] ] = $(element).data( dgm_cart_js.attrs_data[attr_data] ); console.log( dgm_cart_js.attrs_data[attr_data] ); console.log( (element).data( dgm_cart_js.attrs_data[attr_data] ) ); } console.log( elementData ); var alertNotify = { message: '🛒 '+ $(element).data( 'product-title' ) +' adicionado ao carrinho', type: 'success' } this.notify( alertNotify ); dgmCartData.FormatCookieData( elementData, elementQtd ); }, updateProduct : function( cart_key, quantity ){ var cartData = dgmCartData.getCartCookie(); if ( cartData[cart_key] ) cartData[cart_key]['quantity'] = parseInt( quantity ) || 1; dgmCartData.setCartCookie( cartData ); }, removeProduct : function( cart_key ){ var cartData = dgmCartData.getCartCookie(); var productDel = false; if ( cartData[cart_key] ) { productDel = cartData[cart_key]; delete cartData[cart_key]; } if ( productDel ) { console.log( productDel ); var alertNotify = { message: productDel['product-title'] +' removido do carrinho', type: 'alert' } this.notify( alertNotify ); } dgmCartData.setCartCookie( cartData ); var productRow = $( '.pr'+ cart_key ).parent().parent(); productRow.fadeOut('fast', function() { dgmCartWidget.update(); }); $('#pro'+ cart_key ).fadeOut('fast', function() { if ( dgmCartData.getCartCount() == 0 ) { document.location.reload(true); } }); dgmCartWidget.update(); }, editQauntity : function( cart_key, quantity ){ var regexNumber = /[a-zA-Z]/g; if ( regexNumber.test( quantity ) ) { quantity = quantity.replace( regexNumber, '' ); } quantity = quantity > 0 ? quantity : 1 ; if ( quantity != null && !isNaN( quantity ) ) { this.updateProduct( cart_key, quantity ); this.syncCart( cart_key ); } }, syncCart : function( cart_key ){ var cartData = dgmCartData.getCartCookie(); if ( cartData[cart_key] ) { var quantity = cartData[cart_key]['quantity']; $('#o'+ cart_key ).val( quantity ); $('.l'+ cart_key ).val( quantity ); } } }; var dgmCartData = { setCookie : function( cookie_name, cookie_value, cookie_exdays ){ var expires = ''; if ( cookie_exdays ) { var d = new Date(); d.setTime( d.getTime() + ( cookie_exdays * 24 * 60 * 60 * 1000 ) ); var expires = '; expires='+ d.toUTCString(); } document.cookie = cookie_name + '=' + cookie_value + expires + '; path=/'; }, getCookie : function( cookie_name ){ var name = cookie_name +'='; var decodedCookie = decodeURIComponent( document.cookie ); var ca = decodedCookie.split(';'); for( var i = 0; i < ca.length; i++ ) { var c = ca[i]; while ( c.charAt(0) == ' ' ) { c = c.substring(1); } if ( c.indexOf( name ) == 0 ) { return c.substring( name.length, c.length ); } } return false; }, deleteCookie : function( cookie_name ){ this.setCookie( cookie_name, '', -1 ); }, getCartCookie : function(){ var cartCookie = this.getCookie(dgm_cart_js.cookie_name); // HEY! return JSON.parse( cartCookie ) || []; }, setCartCookie : function( products ){ var cartProducts = JSON.stringify( products ); this.setCookie(dgm_cart_js.cookie_name, cartProducts); // HEY! }, deleteCartCookie : function(){ this.setCookie(dgm_cart_js.cookie_name, null, -1); // HEY! }, FormatCookieData : function( data, quantity ){ var update = false; var objData = {}; var objUniqueValues = {}; var cartData = this.getCartCookie() || []; for ( var attr_data in dgm_cart_js.attrs_data ){ var attr_name = dgm_cart_js.attrs_data[attr_data]; if ( data[ attr_name ] ) { objData[attr_name] = data[ attr_name ]; } } for ( var objUniqueValue in dgm_cart_js.single_data ){ var single_data_name = dgm_cart_js.single_data[objUniqueValue]; if ( objData[single_data_name] ) { objUniqueValues[single_data_name] = objData[single_data_name]; } } for ( var index in cartData ) { if ( cartData[index] ) { var cartItem = cartData[index]; var objDataCart = {}; for ( var objUniqueValueCart in dgm_cart_js.single_data ){ var single_data_name = dgm_cart_js.single_data[objUniqueValueCart]; if ( cartItem[single_data_name] ) { objDataCart[single_data_name] = cartItem[single_data_name]; } } if ( JSON.stringify( objUniqueValues ) === JSON.stringify( objDataCart ) ) { cartItem.quantity += parseInt( quantity ); update = true; break; } } } if ( !update ) { cartData.push( objData ); } this.setCartCookie( cartData ); dgmCartWidget.update(); }, getCartCount : function(){ var cartData = this.getCartCookie() || []; var count = 0; for( var index in cartData ) { if ( cartData[index] ){ count++; } } return count; } }; var dgmCartWidget = { update : function(){ var html = ''; var count = dgmCartData.getCartCount(); var dataCart = dgmCartData.getCartCookie(); var qtdDataCart = Object.keys(dataCart).length; var elementList = $('.dgm-widget-lista-produtos'); if ( count > 0 ) { html += "
Produto | "; html += "Qtd. | "; html += "Ação | "; html += "
---|---|---|
";
html += dgm_cart_js.add_link ? "" : "";
html += dataCart[cartKey]['product-title'];
html += dgm_cart_js.add_link ? "" : "";
if ( dataCart[cartKey]['items-data-show'] ) {
var items_data_show = dataCart[cartKey]['items-data-show'].split(',');
html += " ";
$.each(items_data_show, function(array_key, array_value) {
if ( dataCart[cartKey][array_value] ) html += ""+ dataCart[cartKey][array_value] +"";
});
html += " ";
}
html += " | ";
html += ""; html += " | "; html += " |